package com.doupi.partner.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * com.xletou.generator.codegen.mybatis3.IntrospectedTableMyBatisImpl@40a7974 
 */
public class Profit implements Serializable {
    private static final long serialVersionUID = -1873694048327685632L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 收益人的后台账户id
     */
    private Long administratorId;

    /**
     * 总金额
     */
    private BigDecimal totalAmount;

    /**
     * 类型 1 广告收益 2 二级年费收益 3 二级广告收益
     */
    private Byte type;

    /**
     * 券记录id
     */
    private Long couponRecordId;

    /**
     * 二级合伙人后台账户id
     */
    private Long partnerAdministratorId;

    /**
     * 上级管理员id
     */
    private Long superiorPartnerAdministratorId;

    /**
     * 城市合伙人管理员id
     */
    private Long cityAdministratorId;

    /**
     * 分站管理员id
     */
    private Long substationAdministratorId;

    /**
     * 商家后台管理账户id
     */
    private Long businessAdministratorId;

    /**
     * 城市
     */
    private String city;

    /**
     * 商家id
     */
    private String businessId;

    /**
     * 广告id
     */
    private String advertiseId;

    /**
     * 交易流水
     */
    private String transactionOrderId;

    /**
     * 用户id
     */
    private String userId;

    /**
     * 类型 1自有粉丝 2裂变粉丝 4平台用户
     */
    private Byte userType;

    /**
     * 其他续费
     */
    private BigDecimal fee;

    /**
     * 平台收取金额
     */
    private BigDecimal platformFee;

    /**
     * 实际获得金额
     */
    private BigDecimal realAmount;

    /**
     * 来源id，该收益从哪个原始收益提成过来
     */
    private Long fromId;

    /**
     * 状态 0 无效收益 1有效收益 
     */
    private Byte status;

    /**
     * 创建者id
     */
    private Long createAdministratorId;

    /**
     * 更新者id
     */
    private Long updateAdministratorId;

    /**
     * 创建时间
     */
    private Date createTime;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getAdministratorId() {
        return administratorId;
    }

    public void setAdministratorId(Long administratorId) {
        this.administratorId = administratorId;
    }

    public BigDecimal getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(BigDecimal totalAmount) {
        this.totalAmount = totalAmount;
    }

    public Byte getType() {
        return type;
    }

    public void setType(Byte type) {
        this.type = type;
    }

    public Long getCouponRecordId() {
        return couponRecordId;
    }

    public void setCouponRecordId(Long couponRecordId) {
        this.couponRecordId = couponRecordId;
    }

    public Long getPartnerAdministratorId() {
        return partnerAdministratorId;
    }

    public void setPartnerAdministratorId(Long partnerAdministratorId) {
        this.partnerAdministratorId = partnerAdministratorId;
    }

    public Long getSuperiorPartnerAdministratorId() {
        return superiorPartnerAdministratorId;
    }

    public void setSuperiorPartnerAdministratorId(Long superiorPartnerAdministratorId) {
        this.superiorPartnerAdministratorId = superiorPartnerAdministratorId;
    }

    public Long getCityAdministratorId() {
        return cityAdministratorId;
    }

    public void setCityAdministratorId(Long cityAdministratorId) {
        this.cityAdministratorId = cityAdministratorId;
    }

    public Long getSubstationAdministratorId() {
        return substationAdministratorId;
    }

    public void setSubstationAdministratorId(Long substationAdministratorId) {
        this.substationAdministratorId = substationAdministratorId;
    }

    public Long getBusinessAdministratorId() {
        return businessAdministratorId;
    }

    public void setBusinessAdministratorId(Long businessAdministratorId) {
        this.businessAdministratorId = businessAdministratorId;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getBusinessId() {
        return businessId;
    }

    public void setBusinessId(String businessId) {
        this.businessId = businessId;
    }

    public String getAdvertiseId() {
        return advertiseId;
    }

    public void setAdvertiseId(String advertiseId) {
        this.advertiseId = advertiseId;
    }

    public String getTransactionOrderId() {
        return transactionOrderId;
    }

    public void setTransactionOrderId(String transactionOrderId) {
        this.transactionOrderId = transactionOrderId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public Byte getUserType() {
        return userType;
    }

    public void setUserType(Byte userType) {
        this.userType = userType;
    }

    public BigDecimal getFee() {
        return fee;
    }

    public void setFee(BigDecimal fee) {
        this.fee = fee;
    }

    public BigDecimal getPlatformFee() {
        return platformFee;
    }

    public void setPlatformFee(BigDecimal platformFee) {
        this.platformFee = platformFee;
    }

    public BigDecimal getRealAmount() {
        return realAmount;
    }

    public void setRealAmount(BigDecimal realAmount) {
        this.realAmount = realAmount;
    }

    public Long getFromId() {
        return fromId;
    }

    public void setFromId(Long fromId) {
        this.fromId = fromId;
    }

    public Byte getStatus() {
        return status;
    }

    public void setStatus(Byte status) {
        this.status = status;
    }

    public Long getCreateAdministratorId() {
        return createAdministratorId;
    }

    public void setCreateAdministratorId(Long createAdministratorId) {
        this.createAdministratorId = createAdministratorId;
    }

    public Long getUpdateAdministratorId() {
        return updateAdministratorId;
    }

    public void setUpdateAdministratorId(Long updateAdministratorId) {
        this.updateAdministratorId = updateAdministratorId;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public boolean equals(Object that) {
        return EqualsBuilder.reflectionEquals(this, that);
    }

    @Override
    public int hashCode() {
        return HashCodeBuilder.reflectionHashCode(this);
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
    }
}